home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / tin-1.22 / INSTALL next >
Encoding:
Text File  |  1995-07-14  |  15.2 KB  |  389 lines

  1. Compilation and installation notes for tin - 15-09-93
  2. -----------------------------------------------------
  3.  
  4. Tin has been compiled on a wide range of Un*x machines with cc and gcc.
  5. A list of these machines can be found at the end of this file.
  6.  
  7. This file is long (so was the yellow brick road) but please read it all
  8. as it could save you problems later and we don't want an unhappy ending
  9. do we? :-)  
  10.  
  11. Tin can be compiled to read news in any of the following ways:
  12.  
  13.   o  locally from your machines news spool dir (default /usr/spool/news).
  14.  
  15.   o  locally and remotely (rtin or tin -r option) (-DNNTP_ABLE).
  16.  
  17.   o  remotely from another machine via NNTP but creating tin index files
  18.      on local machine for each user in $HOME/.tin/.index (-DNNTP_ONLY).
  19.  
  20.   o  remotely from another machine via NNTP and also retreiving tin index
  21.      files from remote machine via NNTP (-DNNTP_ONLY). This
  22.      option requires that MY NNTP XUSER & XINDEX patches be applied to
  23.      your NNTP server nntpd. On the NNTP server the index daemon of tin
  24.      'tind' needs to be run from cron to update the index files at 
  25.      regular inetervals.
  26.  
  27.   o  remotely from another machine via NNTP and retreiving NOV style index
  28.      files from remote machine via the NNTP XOVER extension (-DNNTP_ONLY). 
  29.  
  30.   o  locally from you machines news spool dir (defult /usr/spool/news)
  31.      and via CD-ROM using pseudo NNTP library with XSPOOLDIR command.
  32.      (-DCDROM_ABLE) must be defined and tin must be linked with the
  33.      pseudo NNTP CD-ROM library libcllib.a.
  34.  
  35.   o  via CD-ROM only using pseudo NNTP library with XSPOOLDIR command.
  36.      (-DCDROM_ONLY) must be defined and tin must be linked with the
  37.      pseudo NNTP CD-ROM library libcllib.a.
  38.  
  39. Many machines require the name of the news gateway machine or the news
  40. domain to be set via the -DNNTP_INEWS_GATEWAY or the -DNNTP_INEWS_DOMAIN 
  41. defines.  This is true of both NNTP and local news systems.
  42.  
  43. The -DNNTP_ABLE or -DNNTP_ONLY define must be added to CFLAGS in 
  44. Makefile and the correct libraries need to be linked to produce
  45. an NNTP aware tin.
  46.  
  47. If -DCDROM_ABLE is defined tin will not work with normal NNTP. This
  48. may change as the CD-ROM library is further developed.
  49.  
  50. Building Tin (Normal & Daemon versions) 
  51. ---------------------------------------
  52.  
  53. Normal version
  54.  
  55. 1)  Type 'make' and a few system types will be displayed.
  56. 2)  Edit Makefile if you want to add/change -D<defines>.  As noted 
  57.     above, some changes may be required for your system.
  58. 3)  Type 'make <system type>' to compile for your system.
  59. 4)  Type 'make install' / 'make install_setuid' to install.
  60.  
  61. Index daemon version
  62.  
  63. Note1: If you want to retrieve tin index files from your NNTP server,
  64.       or if you don't run NNTP but want to install tin setuid and have
  65.       a central index rather than each user keeping his/her own index
  66.       and want tind to automatically keep the index up-to-date, then
  67.       you will need the tind index file daemon; create it using the
  68.       following steps:
  69.  
  70.   1)  Build and install the 'Normal version' of tin as specified by the
  71.       above 4 points.
  72.   2)  Run "make clean" to delete the *.o files from the normal version.
  73.   3)  The tind index daemon needs to be installed on your NNTP server,
  74.       or on your standalone news server if you're not using NNTP.
  75.       More info. concerning my NNTP patches & the tin daemon can be
  76.       found in the INSTALL.NNTP file.  If you don't use NNTP, just
  77.       install tind on the machine that has the news spool directory.
  78.   4)  Apply my NNTP XUSER & XINDEX patches to your nntpd server or this
  79.       will not work with NNTP!!!. (If you want tind locally read Note3).
  80.   5)  Edit the Makefile and add -DINDEX_DAEMON to your CFLAGS entry and
  81.       remove any -DNNTP_* defines. Also remove -lcurses, -ltermcap, and
  82.       any other screen-handling libraries used, as tind does not need to
  83.       be linked with curses and it will save a good 30-50K on the size of
  84.       tind.
  85.   6)  Type 'make <system type>' to compile tind daemon for your NNTP server
  86.       or standalone news server.  This creates tind as the file "tin".
  87.   7)  Rename the file "tin" to "tind" (ie. mv tin tind).
  88.   8)  Type 'make install_daemon' to install tind daemon on your NNTP server
  89.       or standalone news server.
  90.   9)  Add the following line to your system cron to run tind every 30 mins:
  91.         00,30 * * * * su news -c '/usr/lib/news/tind'
  92.  
  93.   Note2: tind must be run as user 'news' and the normal tin must have
  94.          the correct permissions to read the central index files!
  95.   Note3: tind can also be used to update a copy of all index files
  96.  
  97. Testing Tin
  98. -----------
  99.  
  100. Of course you _were_ going to test it before installing it for anyone else
  101. to use, weren't you?  This is just a little reminder and some suggestions 
  102. on what to test first, and where to look first if it's broken.
  103.  
  104. Things to test:
  105.  
  106. 1) Check that you can read news from several local and world-wide groups.
  107.    If this fails, check that the NNTP define directives are correctly set, 
  108.    and for local news systems, that the News directory stucture define 
  109.    directives are correctly set.  For NNTP versions, check that the server is
  110.    actually running and can be connected to from your machine.  This should 
  111.    help you find and fix some of the most common problems.
  112.  
  113.    If reading news works fine, then:
  114.  
  115. 2) Check that you can post a test message to a local distribution group, 
  116.    preferably a test-only group.  (Remember, the world does not care to 
  117.    know whether you are testing Tin.)  If it fails, check that the 
  118.    INEWSDIR define is correctly set, that NNTP_INEWS is correctly set, and 
  119.    that the News machine name define directives are correctly set.  If 
  120.    possible, check whether you can post via some other mechanism, such as 
  121.    Pnews.  This should help you isolate and fix the most common problems.
  122.  
  123.    If posting news works fine, then:
  124.  
  125. 3) Check that you can cancel one of your test postings.  If not, it is 
  126.    almost certain that your News machine defines need to be set correctly, 
  127.    because Tin thinks your From: line is different from what has actually
  128.    been posted.  See the section on News machine names below.
  129.  
  130. Further testing is desirable, but left to your individual conscience and
  131. ingenuity.
  132.  
  133. Compiler flags (-D<name> define directives)
  134. -------------------------------------------
  135.  
  136. News directory structure
  137. ------------------------
  138.  
  139. LIBDIR
  140. Define if news software is not in /usr/lib/news.
  141.  
  142. SPOOLDIR
  143. Define if news articles are not in /usr/spool/news.
  144.  
  145. NOVROOTDIR
  146. Define if news overview (NOV) files are not stored in SPOOLDIR.
  147.  
  148. INEWSDIR
  149. Define if bnews/cnews program 'inews' is not in LIBDIR.
  150.  
  151. News machine names
  152. ------------------
  153.  
  154. NNTP_INEWS_GATEWAY
  155. Defines the name of your news gateway machine. Useful if you don't want 
  156. your internal network visible to the outside world, or if your inews script
  157. or NNTP server rewrites your address for you.
  158. If the first letter of the string is a '/' the gateway name will be read from 
  159. the specified file.
  160. If the first letter of the string is a '$' the gateway name will be read from 
  161. the specified environment variable. The env. variable contents may be a path.
  162. If the first letter of the string is a '%' the gateway name will be directly
  163. appended to the username.  
  164. The '%' hack will *only* be used if NNTP_INEWS_DOMAIN is not defined.
  165. Note: don't define if NNTP_INEWS_DOMAIN is defined.
  166.  
  167. Example 1: If you are on machine 'tragic' at network domain 'confusion.com', 
  168. Tin will assume your From: line should read "user@tragic.confusion.com".  If
  169. your inews script instead rewrites your address as "user@confusion.com", you 
  170. will be unable to cancel your own postings.  To make your posts and cancels 
  171. work properly, define -DNNTP_INEWS_GATEWAY=\"confusion.com\"
  172. Example 2: I use this define to make all my net postings appear from our news
  173. gateway machine 'anl433' even though I post from my own workstation 'sony01'
  174. i.e. -DNNTP_INEWS_GATEWAY=\"anl433\"
  175. Example 3: -DNNTP_INEWS_GATEWAY=\"%anl433.uucp@Germany.EU.net\" (using the 
  176. '%' hack) will create the net address "Iain.Lea%anl433.uucp@Germany.EU.net"
  177.  
  178. NNTP_INEWS_DOMAIN
  179. Defines the name of your network domain. 
  180. If the first letter of the string is '/' the domain name will be read from 
  181. the specified file.
  182. If the first letter of the string is a '$' the domain name will be read from 
  183. the specified environment variable. The env. variable contents may be a path.
  184. Note: don't define if NNTP_INEWS_GATEWAY is defined.
  185.  
  186. Example 1: I use this define to add our uucp domain '.uucp' to our news 
  187. gateways machine address 'anl433.uucp'. Note the leading dot '.' which
  188. is *always* needed before the domain name. 
  189. i.e. -DNNTP_INEWS_DOMAIN=\".uucp\"
  190.  
  191. NNTP - Reading & posting news
  192. ----------------------------- 
  193.  
  194. NNTP_ABLE
  195. Define if you wish to read news locally and remotely via an NNTP server.
  196.  
  197. NNTP_ONLY
  198. Define if you [want to | can] ONLY read news remotely via an NNTP server.
  199.  
  200. NNTP_INEWS
  201. Define if you want to use my builtin NNTP POST routine so that you no
  202. longer have to rely on the mini-inews from NNTP to be installed on each
  203. client machine. Also check that NNTP_INEWS_GATEWAY & NNTP_INEWS_DOMAIN 
  204. are correctly set to produce a correct From: headers for your site.
  205.  
  206. DONT_HAVE_NNTP_EXTS
  207. Define if you have a *virgin* NNTP server without my patches. This is just
  208. a nicety that will stop tin asking the server if it supports my NNTP server
  209. extensions XINDEX, XMOTD, XUSER & SPOOLDIR (cdrom) extensions.
  210.  
  211. NNTP_SERVER_FILE
  212. Only define if your nntpserver file is other than /etc/nntpserver.
  213.  
  214. NNTP_DEFAULT_SERVER
  215. Defines the name of the default nntp server that tin should connect to.
  216. Overrides the value of NNTP_SERVER_FILE. Can be overriden by setting the
  217. environment variable NNTPSERVER.
  218.  
  219. NETLIBS
  220. Contains the networking libraries needed to link with nntplib.o file.
  221.  
  222.  
  223. Reading news via CD-ROM
  224. -----------------------
  225.  
  226. CDROM_ABLE
  227. Define if you wish to read news locally and from CD-ROM.
  228.  
  229. CDROM_ONLY
  230. Define if you [want to | can] ONLY read news from CD-ROM.
  231.  
  232.  
  233. Daemon options
  234. --------------
  235.  
  236. INDEX_DAEMON
  237. Define to make an index file updating daemon version of tin. Note that
  238. no -lcurses or screen libraries need to be linked with tin when this
  239. #define is specified. If defined this will automatically undefine all
  240. NNTP_* defines as the daemon has to be installed on the NNTP server.
  241.  
  242.  
  243. Miscellaneous options
  244. ---------------------
  245.  
  246. DEBUG
  247. Define if you want tin to log debug info. to files in /tmp. Activated
  248. by tin -Dn where n is 1 for NNTP only debug logging and n is 2 for 
  249. logging all debug info. Debug files written to /tmp are ARTS, ACTIVE,
  250. BASE and NNTP.
  251.  
  252. DONT_HAVE_MKDIR
  253. Define if your machine does not have the mkdir() system call.
  254.  
  255. DONT_HAVE_GETCWD
  256. Define if you don't have the getcwd() system call. getwd() will be used.
  257.  
  258. DONT_LOG_USER
  259. Log username & info to /tmp/.tin_log for usage statistics. If reading via
  260. NNTP the NNTP XUSER extended command will log user info to NNTP server.
  261. If -DNNTP_XUSER is defined it will define LOG_USER automatically.
  262.  
  263. DONT_REREAD_ACTIVE_FILE
  264. Define if you do not want the active file to be reread periodically.
  265. The reread period can be set in seconds by setting the tinrc variable
  266. 'reread_active_file_secs='
  267.  
  268. HAVE_FACIST_NEWSADMIN
  269. Define if you want users articles to be posted to groups that your site 
  270. receives.  This will change the warning that a group that the user is 
  271. posting to was not found in the sites active file to an error in the 
  272. article checking routine therefore causing the user to remove the group
  273. from his/her posting or to abort the posting of the article.
  274.  
  275. HAVE_ISPELL
  276. Define if you have ispell (interactive spellchecker) installed and want the
  277. option of checking your articles, mails before posting/mailing them.
  278.  
  279. HAVE_LONG_FILENAMES
  280. Define if your machines filesystem supports filenames longer than 14
  281. chars (default for BSD type systems).
  282.  
  283. HAVE_MAIL_HANDLER
  284. Define if you want to use the MH style mail handling & reading code in mail.c
  285. It should be noted that mail handling is not well tested and not yet fully
  286. implemented. You can expect errors if you use this define so let me know the
  287. problems by sending me a bug report ('R' bug command from within tin).
  288.  
  289. HAVE_MMDF_MAILER
  290. Define if your machine uses a MMDF type mailer instead of sendmail.
  291. It is defined as default on SCO Unix machines. It can be dynamically 
  292. changed by setting the tinrc variable save_to_mmdf_mailbox to ON. 
  293.  
  294. HAVE_POLL
  295. Define if you have the poll() system call that is required to abort 
  296. the indexing of a group in the function input_pending(). Don't define
  297. if HAVE_SELECT is already defined.
  298.  
  299. HAVE_SELECT
  300. Define if you have the select() system call that is required to abort 
  301. the indexing of a group in the function input_pending(). Don't define
  302. if HAVE_POLL is already defined.
  303.  
  304. HAVE_POSIX_JC
  305. Define if your machine uses Posix style sigaction() signal handling.
  306.  
  307. HAVE_SETREUID
  308. Define if problems occur when runnung tin as setuid news. Only define if
  309. your system supports the setreuid() system call.
  310.  
  311. HAVE_STRFTIME
  312. Define if date shown at article viewer level is incorrect (ie. 1970...).
  313. Only define if your system supports the strftime() system call.
  314.  
  315. NO_PIPING
  316. Do not allow piping of articles to shell commands.
  317.  
  318. NO_POSTING
  319. Do not allow posting/followup of articles.
  320.  
  321. NO_REGEX
  322. Define if you do not want to use regular expression pattern matching.
  323.  
  324. NO_SHELL_ESCAPE
  325. Do not allow shell escapes.
  326.  
  327. SLOW_SCREEN_UPDATE
  328. Define if running over a low speed connection (ie. 2400baud). It stops
  329. the percentage info being shown at bottom of select and group menus and
  330. stops the groupname being displayed at the bottom of the screen as it is
  331. subscribed/unsubscribed.
  332.  
  333. SMALL_MEMORY_MACHINE
  334. Define if you are running a machine with little memory (<4MB). Tin will
  335. run slightly slower but be more efficent in how memory is allocated and
  336. reclaimed.
  337.  
  338. USE_CLEARSCREEN
  339. Define if the you wish screen to use ClearScreen() and not MoveCursor()
  340. and CleartoEOLN(). This is perhaps faster on slow terminals but I have
  341. not really run any speed tests recently.
  342.  
  343. USE_INN_NNTPLIB
  344. Define if you want to use the INN library functions GetConfigValue()
  345. & GetFQDN().  The INN_NNTPLIB variable in the Makefile must contain
  346. the correct path to INN library.
  347.  
  348. USE_INVERSE_HACK
  349. Define if you want inverse video and highlighted bar disabled. Can be 
  350. toggled in tin by the 'I' command and highlight bar by 'M' command.
  351.  
  352.  
  353. Compiled & installed on the following machines
  354. ----------------------------------------------
  355.  
  356. 1) * i386 & Linux 0.99p12 (main development machine)
  357. 2) * i386 & BSDI 1.0/Xenix 2.3.2/SCO SVR3.2/ISC SVR3.2/ATT SVR4.0
  358. 3)   Sony News & NewsOS 4.1
  359. 4)   SNI MX300/MX500 & Sinix 5.24/5.4
  360. 5) * Sun 3/4/IPC/SS1/SS2/SS10 & SunOS 4.0.3/4.1.1/4.1.2/4.1.3 
  361. 6)   Dec 5000/Vax & Ultrix 4.1/4.2
  362. 7)   Vax 11/785 & BSD 4.3
  363. 8)   DG Aviion 300 & DG-UX 4.30
  364. 9)   Apollo DN4500 & DomainOS 10.3
  365. 10)  ICL DRS6000 & SVR4.0 
  366. 11)  Apricot VX/FT & SCO 3.2.2
  367. 12)  DIAB DS90 & D-NIX 5.3
  368. 13)  Amdahl 5890 & UTS 5.2.6b
  369. 14)  HP 720/845 & HP-UX 7.0/8.0
  370. 15)  IBM RS/6000 & AIX 3.1.5
  371. 16)  NCR Tower & SysV
  372. 17)  Atari STe & Minix 1.5.10.3b
  373. 18)  Powerbook 140 & MacMinix
  374. 19)  386 PC & Minix 386
  375. 20)  Sequent S81 & PTX 1.3 / Dynix
  376. 21)  Convex C220 & Convex Un*x
  377. 22)  Harris HCX & CX/UX
  378. 23)  SGI 4D35/Challenge & IRIX 4.0.1/5
  379. 24)  Pyramid 9810 & OSx96N
  380. 25)  Alliant FX/2800 & Concentrix 2.2
  381. 26)  Stratus i860 & FTX 2.0
  382. 27)  Apple A/UX 3.0 & gcc 2.2 (?)
  383. 28)  Motorola Delta 3200 & SysVR3V6
  384. 29)  Gould Powernode 9050 & utx/32
  385. 30)  Acorn R260 & RISCiX 1.2
  386. 31)  DDE Supermax & ATT SysVr3
  387.  
  388. * = compiled, installed and used by author 
  389.